package br.uninove.ic.texture;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

import br.uninove.ic.texture.utils.ImageBuilder;
import br.uninove.ic.texture.utils.TimerMethod;

public class Teste {

	public static void main(String[] args) throws IOException {

		// tarefa
		// criar classe filtro
		// implementar os filtro de media, mediana e gradiente
		// para uma janela qualquer

		//IGrayScaleImage img = ImageBuilder.loadImageGrayScale(new File(Teste.class.getResource( "landscape-photo.jpg" ).getFile()));
		//ImageFilter filter = new ImageFilter(img);
		//Histogram hist = new Histogram(img);

		//WindowImages.show(img, "Imagem em N�vel de Cinza");
		//WindowImages.show(filter.getImgMedianFilter(), "Imagem em Filtro de Medianada");
		//WindowImages.show(filter.getImgMeanFilter(), "Imagem em Filtro de M�dia");
		//WindowImages.show( hist.getImgHistogram( ), "Histograma da Imagem");
		
		File file = new File("/home/thalys/ntfs/images");
		File[] files = file.listFiles();
		TimerMethod method = new TimerMethod( );
		for (int i = 0; i < files.length; i++) {
			if ( files[i].isDirectory() ) {
				File[] images = files[i].getAbsoluteFile().listFiles();
				
				for (int j = 0; j < images.length; j++) {
					
					MatrizCoOcorrencia texture = new MatrizCoOcorrencia(ImageBuilder.loadImageGrayScale(images[j]), 1); 
					System.out.println(texture.medidaDeContraste() + " " +
										texture.medidaDeCorrelacao() + " " +
										texture.medidaDeEntropia() + " " +
										texture.medidaDeHomogeneidade() + " " + 
										texture.segundoMomentoAngular() + " " +files[i].getName());
					/*MatrizHistogramaSomaDiferenca texture = new MatrizHistogramaSomaDiferenca(ImageBuilder.loadImageGrayScale(images[j]), 1, 0);
					System.out.println(texture.contraste() + " " +
										texture.correlacao() + " " +
										texture.entropia()  + " " +
										texture.media()  + " " +
										texture.momentoDaDiferencaInversa() + " " +
										texture.segundoMomentoAngular()  + " " +
										texture.variancia() + " " + files[i].getName());*/
					/*MatrizDiferencaNiveisCinza texture = new MatrizDiferencaNiveisCinza(ImageBuilder.loadImageGrayScale(images[j]), 1, 0);
					System.out.println(texture.contraste() + " " +
										texture.correlacao()  + " " +
										texture.entropia()  + " " +
										texture.homogeneidade() + " " +
										texture.segundoMomentoAngular()  + " " +
										texture.variancia() + " " + files[i].getName());*/
					/*MatrizMomentoDoHistograma texture = new MatrizMomentoDoHistograma(ImageBuilder.loadImageGrayScale(images[j]));
					System.out.println(texture.getMomento(1) + " " +
										texture.getMomento(2) + " " +
										texture.getMomento(3) + " " +
										texture.getMomento(4) + " " + files[i].getName());*/
					/*MatrizComprimento texture = new MatrizComprimento(ImageBuilder.loadImageGrayScale(images[j]), 0);
					System.out.println(texture.GLN() + " " + 
										texture.HGRE() + " " + 
										texture.LGRE() + " " +
										texture.LRE() + " " +
										texture.RLN() + " " +
										texture.RP() + " " +
										texture.SRE() + " " + files[i].getName()+ "");*/
					
				}
			}
		}
		System.out.println(method.getResult( ));
	}

}
